package com.todo.biz.infrastructure.repository;


import com.todo.common.common.entity.response.page.PageResult;
import com.todo.biz.infrastructure.entity.condition.CommentCondition;
import com.todo.biz.infrastructure.entity.po.CommentPO;

import java.util.List;

/**
 * (Comment)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 21:10:03
 */
public interface CommentRepository {

    /**
     * 多条件查询评论详情列表
     * 注：仅查询单层评论数据
     *
     * @param commentCondition
     * @return
     */
    PageResult<CommentPO> queryCommentByCondition(CommentCondition commentCondition);

    /**
     * 多条件查询评论总数
     *
     * @param commentCondition
     * @return
     */
    Long queryCountByCondition(CommentCondition commentCondition);

    /**
     * 根据主键id查询评论信息
     *
     * @param id
     * @return
     */
    CommentPO queryCommentPOById(Long id);

    /**
     * 根据父id查询评论列表
     *
     * @param parentId
     * @param pageSize
     * @param pageIndex
     * @return
     */
    List<CommentPO> queryCommentListByParentId(Long parentId, Integer pageSize, Integer pageIndex);

    /**
     * 新增评论信息
     *
     * @param commentPO
     * @return
     */
    Boolean insertCommentPO(CommentPO commentPO);

    /**
     * 根据主键id删除评论信息
     *
     * @param id
     * @return
     */
    Boolean removeCommentPOById(Long id);

}
